package com.starpl.mobile.android.monthunsae.november.common;


import android.app.AlertDialog;
import android.content.DialogInterface;
import android.webkit.JsResult;
import android.webkit.WebChromeClient;
import android.webkit.WebView;

/**
 * <pre>
 * WebView에서 발생하는 다양한 이벤트를 부가적인 처리를 하도록 정의하는 클래스
 * </pre>
 * 
 * @author 박우람
 * @since 2010.09.29
 */
public class StarpetWebChromeClient extends WebChromeClient
{
	/* (non-Javadoc)
	 * @see android.webkit.WebChromeClient#onJsAlert(android.webkit.WebView, java.lang.String, java.lang.String, android.webkit.JsResult)
	 */
	@Override
	public boolean onJsAlert(WebView view, String url, String message, final JsResult result)
	{
		// WebView에서는 기본적으로 자바스크립트의 alert()함수를 처리하지 않는다. 다음과 같이 다이얼로그를 통해 작동하도록 보조 구현한다.
		new AlertDialog.Builder(view.getContext())
        .setMessage(message)
        .setPositiveButton("확인",
                new AlertDialog.OnClickListener()
                {
                    public void onClick(DialogInterface dialog, int which)
                    {
                    	// 확인버튼 하나만을 보이되, 눌리면 바로 사라지는 다이얼로그이다.
                    	result.confirm();
                    	dialog.dismiss();
                    }
                })
        .setCancelable(false)
        .create()
        .show();
		
		return true;
	}

	/* (non-Javadoc)
	 * @see android.webkit.WebChromeClient#onJsConfirm(android.webkit.WebView, java.lang.String, java.lang.String, android.webkit.JsResult)
	 */
	@Override
	public boolean onJsConfirm(WebView view, String url, String message, final JsResult result)
	{
		new AlertDialog.Builder(view.getContext())
        .setMessage(message)
        .setPositiveButton("예",
                new AlertDialog.OnClickListener()
                {
                    public void onClick(DialogInterface dialog, int which)
                    {
                    	// 확인버튼 하나만을 보이되, 눌리면 바로 사라지는 다이얼로그이다.
                    	result.confirm();
                    	dialog.dismiss();
                    }
                })
        .setNegativeButton("아니오",
        		new AlertDialog.OnClickListener()
                {
                	public void onClick(DialogInterface dialog, int which)
                	{
                		// 확인버튼 하나만을 보이되, 눌리면 바로 사라지는 다이얼로그이다.
                		result.cancel();
                		dialog.dismiss();
                	}
                })
        .setCancelable(false)
        .create()
        .show();
		
		return true;
	}
	
	
}
